header{
	package practpl.tres;
	
}


/////////////////////////////// 
// Analizador léxico 
/////////////////////////////// 
class Analex extends Lexer;
	options{
		
		k = 2;
		
	}
	
	tokens{
		SET = "SET";
		IF = "IF";
		WHILE = "WHILE";
	}
 
	//si encuentra un salto de linea, tabulador o espacio lo salta con Token.Skip
	BLANCO: (' '|'\t'|"\r\n") {$setType(Token.SKIP);}; 
	protected LETRA : ('a'..'z')|('A'..'Z')|'_'; 
	protected DIGITO : '0'..'9';
	TEXTO : '"'(LETRA|DIGITO|' ')*'"';
	RUTA : ("/"(LETRA|DIGITO)*)+;
	BOOLEANO : ("TRUE"|"FALSE"); 
	NUMERO : (DIGITO)+; 
	IDENT : LETRA(LETRA|DIGITO)*; 
	SEPARADOR: ';'; 
	OPERADOR: '='; 
	DOLAR: '$';
	PARENTA : '(';
	PARENTC : ')';
	LLAVEA :'{';
	LLAVEC : '}';
	FOR : "FOR";